<?php /** 封装一些常用的方法 **/
class CommonMethods{
    /** 构造器私有 **/
    private function __construct(){}
    /** 防止克隆 **/
    private function __clone(){}

    /** 判空: 先判断这个变量是否被定义, 再判断空
     * @param $data
     * @return bool 非空返回 false
     */
    public static function isEmpty($data): bool{
        /*  isset(): 如果 var 存在并且值不是 null 则返回 true，否则返回 false -> true
            empty(): 当var存在，并且是一个非空非零的值时返回 false 否则返回 true -> false */
        return !isset($data) || empty($data);
    }

    /** 进行字符串数据(' " \ null)的转义
     * @param $var
     * @return bool
     */
    public static function enEscape(&$var): bool{
        /* 判空 */
        if( self::isEmpty($var) ) return false;
        /* 转义 */
        $var = addslashes($var);
        return true;
    }

    /** 进行字符串数据(' " \ null)的逆向转义
     * @param $var
     * @return bool
     */
    public static function deEscape(&$var): bool{
        /* 判空 */
        if( self::isEmpty($var) ) return false;
        /* 反转义 */
        $var = stripslashes($var);
        return true;
    }

    /** 进行字符串长度的比较 *
     * @param $str
     * @param $symbol
     * @param $length
     * @return bool
     */
    public static function compareLength($str, $symbol, $length): bool{
        $strlen = mb_strlen($str,'utf8');
        switch ($symbol){
            case '>':
                return $strlen > $length;
            case '>=':
                return $strlen >= $length;
            case '=':
                return $strlen === $length;
            case '<':
                return $strlen < $length;
            case '<=':
                return $strlen <= $length;
            default:
                return false;
        }
    }


}